Skip to main content
Version: JavaScript SDK 6.0.1

Methods

Initialize

Initialize

Initializes the JavaScript SDK and returns the list of payment terminals associated with the account.

Parameters

ParameterNotes
API_key Required
string
The Actor API key.
dev_or_prod_environment Required
boolean
Value that defines if the actor is targeting a development (true -> cloud.handpoint.io) or production (false -> cloud.handpoint.com) environment.
recovery_EoT_callback Required
promise
Promise that collects the pending transaction results that couldn't be delivered to the POS during the execution of the transaction, for example if the network connection became unstable. The callback input parameter is a TransactionResult object. When the promise is resolved the JS SDK will send the ACK to the payment terminal to mark the result as recovered and the device will delete it from its storage. If the promise is rejected, the device will resend the TransactionResult until the promise is correctly resolved and the ACK sent to the reader. The sdk has a 5 second window for the promise to be resolved

Code example

Handpoint.init('API KEY', true, (pendingEoT) => {
console.log('Recovered Transaction -> ' + JSON.stringify(pendingEoT);
return handleTransactionResultPromise(pendingEoT);
})

// For simple or sync operations you may just return a resolved Promise.
Handpoint.init('API KEY', true, (pendingEoT) => {
console.log('Recovered Transaction -> ' + JSON.stringify(pendingEoT);
return Promise.resolve();
})

Returns

ParameterNotes
DevicesList of Device objects

Connect

Connect

Connect the JavaScript SDK to a payment terminal.

Parameters

ParameterNotes
device_name Required
string
The target payment terminal to connect to. The device_name is returned in the Device object of the init call.

Code example

Handpoint.connect('1234263-TYPE1');

Returns

ParameterNotes
Connection Result- 200 code for OK
- 403 code for NOK

Disconnect

Disconnect

Connect the JavaScript SDK to a payment terminal.

Parameters

ParameterNotes
device_name Required
string
The target payment terminal to disconnect from. The device_name is returned in the Device object of the init call.

Code example

Handpoint.connect('1234263-TYPE1');

Returns

ParameterNotes
Connection Result- Disconnected message for OK
- ERROR disconnecting message for NOK

Sale

Sale

A sale initiates a payment operation to the card reader. In its simplest form, you only have to pass the amount and currency as parameters.

Parameters

ParameterNotes
amount Required
integer
Amount of funds to charge - in the minor unit of currency (f.ex. 1000 is 10.00 GBP).
currency Required
string
Currency of the charge
saleOptions Required
SaleOptions
An object to store all the customisation options for a sale. This object can be empty if no options are required.
callback_function Required
string
Callback function to subscribe to the transaction status updates.

Code example

var [*SaleOptions*](#23)  = {
customerReference: "MyCustomReference",
tipConfiguration: {
baseAmount: "100",
skipEnabled: true,
enterAmountEnabled: true,
tipPercentages: [
1,
2,
3,
5
]
},
bypassOptions: {
signatureBypass: true,
pinBypass: true
},
merchantAuth: [
{
acquirer: "ACQUIRER",
mid: "11111",
tid: "22222",
mcc: "33333"
}
],
}

Handpoint.sale('1000', 'USD', [*SaleOptions*](#23) , function (stat) {
console.log('Transaction Status received -> '+ stat.message)
});

Returns

ParameterNotes
Sale ResponseA Financial Response object

Sale And Tokenization

SaleAndTokenization

A sale which both authorizes the transaction and returns a token representing the card. This feature is not available for all acquirers. Please check with Handpoint to know if tokenization is supported for your acquirer of choice.

Parameters

ParameterNotes
amount Required
integer
Amount of funds to charge - in the minor unit of currency (f.ex. 1000 is 10.00 GBP).
currency Required
string
Currency of the charge
saleOptions Required
SaleOptions
An object to store all the customisation options for a sale. This object can be empty if no options are required.
callback_function Required
string
Callback function to subscribe to the transaction status updates.

Code example

var [*SaleOptions*](#23)  = {
customerReference: "MyCustomReference",
tipConfiguration: {
baseAmount: "100",
skipEnabled: true,
enterAmountEnabled: true,
tipPercentages: [
1,
2,
3,
5
]
},
bypassOptions: {
signatureBypass: true,
pinBypass: true
},
merchantAuth: [
{
acquirer: "ACQUIRER",
mid: "11111",
tid: "22222",
mcc: "33333"
}
],
}

Handpoint.saleAndTokenization('1000', 'USD', [*SaleOptions*](#23) , CallbackFunction(stat){...});

Returns

ParameterNotes
Sale and Tokenization ResponseA Financial Response object

Transaction Recovery

StartRecovery

The terminal has a transaction recovery loop to automatically send back the pending Transaction Result to the Point of sale in case it becomes unreachable (network issue or other).

For the first 100 seconds after a transaction is completed, a background thread will attempt to deliver the result every 5 seconds. If the point of sale is still unreachable after the first 100 seconds, the retry loop turns into an exponential increment to the power of 2 (8s-16s-32s etc…).

The recovery loop is reinitialized every time the Handpoint application is restarted or the startRecovery method is triggered.The Transaction Result received through the transaction recovery loop will have the recoveredTransaction field set to true

Important information: The point of sale must be successfully connected to a terminal in order to receive the pending transactions.

Code example

//Start recovery of pending transactions 
Handpoint.startRecovery();

Returns

ParameterNotes
Promise Successful ResponseThe event has been sent to the device
Promise Error ResponseThe event was not sent to the terminal because it is unreachable

Stop Listening Device

StopListeningDevice

This operation interrupts the connection, stops listening to transaction events and resets the connection with the device

Code example

//Stop Listening to Events 
Handpoint.stopListeningDevice();

Sale Reversal

SaleReversal

A sale Reversal, also called sale VOID allows the user to reverse a previous sale operation. This operation reverts (if possible) a specific sale identified with a transaction id. In its simplest form, you only have to pass the amount, currency and originalTransactionID as parameters

Parameters

ParameterNotes
amount Required
integer
Amount of funds to charge - in the minor unit of currency (f.ex. 1000 is 10.00 GBP).
currency Required
string
Currency of the charge
originalTransactionID Required
string
The transaction id of the original sale authorization
merchantAuthOptions Required
MerchantAuthOptions
An object to store all the customisation options for a saleReversal. This object can be empty if no options are required.
callback_function Required
string
Callback function to subscribe to the transaction status updates.

Code example

var saleReversalOptions = {
customerReference: "MyCustomReference",
merchantAuth: [
{
acquirer: "ACQUIRER",
mid: "11111",
tid: "22222",
mcc: "33333"
}
],
}

Handpoint.saleReversal('1000', 'USD', 'OriginalSaleGUID', saleReversalOptions, CallbackFunction(stat){...});

Returns

ParameterNotes
Sale Reversal ResponseA Financial Response object

Refund

Refund

A refund initiates a refund operation to the payment terminal. This operation moves funds from the merchant account to the cardholder´s credit card. In its simplest form, you only have to pass the amount and currency as parameters. For Interac (Canadian Debit Network), refunds can only be processed until Interac closes the batch of transactions at night.

Parameters

ParameterNotes
amount Required
integer
Amount of funds to charge - in the minor unit of currency (f.ex. 1000 is 10.00 GBP).
currency Required
string
Currency of the charge
originalTransactionID Required
string
The transaction id of the original sale authorization
refundOptions Required
RefundOptions
An object to store all the customisation options for a saleReversal. This object can be empty if no options are required.
callback_function Required
string
Callback function to subscribe to the transaction status updates.

Code example

var refundOptions = {
customerReference: "MyCustomReference",
bypassOptions: {
signatureBypass: true,
pinBypass: true
},
merchantAuth: [
{
acquirer: "ACQUIRER",
mid: "11111",
tid: "22222",
mcc: "33333"
}
],
}

Handpoint.refund('1000', 'USD', undefined ,refundOptions, CallbackFunction(stat){...});

// Linked Refund
Handpoint.refund('1000', 'USD', 'OriginalSaleGUID' ,refundOptions, CallbackFunction(stat){...});

Returns

ParameterNotes
Refund ResponseA Financial Response object

Refund Reversal

RefundReversal

A Refund Reversal, also called Refund VOID, allows the merchant to reverse a previous refund operation. This operation reverts (if possible) a specific refund identified with a transaction id. In its simplest form, you only have to pass the amount, currency and originalTransactionID as parameters.

Parameters

ParameterNotes
amount Required
integer
Amount of funds to charge - in the minor unit of currency (f.ex. 1000 is 10.00 GBP).
currency Required
string
Currency of the charge
originalTransactionID Required
string
The transaction id of the original sale authorization
merchantAuthOptions Required
MerchantAuthOptions
An object to store all the customisation options for a refundReversal. This object can be empty if no options are required.
callback_function Required
string
Callback function to subscribe to the transaction status updates.

Code example

var refundOptions = {
customerReference: "MyCustomReference",
bypassOptions: {
signatureBypass: true,
pinBypass: true
},
merchantAuth: [
{
acquirer: "ACQUIRER",
mid: "11111",
tid: "22222",
mcc: "33333"
}
],
}

Handpoint.refund('1000', 'USD', undefined ,refundOptions, CallbackFunction(stat){...});

// Linked Refund
Handpoint.refund('1000', 'USD', 'OriginalSaleGUID' ,refundOptions, CallbackFunction(stat){...});

Returns

ParameterNotes
Refund Reversal ResponseA Financial Response object

Tokenize Card

TokenizeCard

Returns a token for the card. This feature is not available for all acquirers. Please check with Handpoint to know if tokenization is supported for your acquirer of choice

Parameters

ParameterNotes
options Required
Options
An object to store all the customisation options for a tokenizeCard. This object can be empty if no options are required.
callback_function Required
string
Callback function to subscribe to the transaction status updates.

Code example

var options = {
customerReference: "MyCustomReference",
}

Handpoint.tokenizeCard(options, CallbackFunction(stat){...});

Returns

ParameterNotes
Tokenize Card ResponseA Financial Response object

Card Pan

CardPan

A cardPan request will return the full PAN of the card being swiped, dipped or tapped. Only the PANs of whitelisted card ranges will be returned by the Handpoint systems. This operation is mostly used to be able to process funds or points from loyalty cards.

Parameters

ParameterNotes
options Required
Options
An object to store all the customisation options for a tokenizeCard. This object can be empty if no options are required.
callback_function Required
string
Callback function to subscribe to the transaction status updates.

Code example

var options = {
customerReference: "MyCustomReference",
}

Handpoint.tokenizeCard(options, CallbackFunction(stat){...});

Returns

ParameterNotes
Card Pan ResponseA Financial Response object

Stop Current Transaction

StopCurrentTransaction

Operation used to stop the current transaction. The transaction can only be stopped at specific stages of a payment processing, for example a transaction can not be stopped when the card is being read but can be stopped when waiting for the cardholder to initially insert a card.

Code example

Handpoint.stopCurrentTransaction();

Returns

ParameterNotes
Promise Successful Response{finStatus: CANCELLED, statusMessage: 'Operation stopped'}
Promise Error Response{finStatus: FAILED, errorMessage: 'Unable to stop current transaction'}
Promise Error Response{ finStatus: FAILED, errorMessage: 'No response received from the card reader' }

Print Receipt

PrintReceipt

This method sends the merchant or customer receipt to the terminal for printing. The format of the HTML data, passed to the method or stored in the url, must follow this format: Html Print Format.

Code example

Handpoint.printReceipt('https://location_of_receipt_container.com/receipt_location', CallbackFunction(stat){...});

var htmlReceipt = '[...] HTML receipt [...]'

Handpoint.printReceipt(htmlReceipt, CallbackFunction(stat){...});

Parameters

ParameterNotes
receipt Required
string
HTML receipt or url to locate the receipt, it can be found in the response of a financial operation, in the fields merchantReceipt or customerReceipt
callback_function Required
string
Callback function to subscribe to the transaction status updates.

Returns

ParameterNotes
Print Receipt ResponseA specific Status object that describes the printing action (PrinterOutOfPaper, ErrorConnectingToPrinter or ReceiptPrintSuccess)

Ping Device

PingDevice

This operation will ping the terminal to confirm if it is online. The promise is correctly resolved if the device is online and successfully answers to the ping

Code example

Handpoint.pingDevice(CallbackFunction(stat){...});

Returns

ParameterNotes
Device StatusA Device Status object

Update

Update

Triggers a terminal software and config update

Parameters

ParameterNotes
callback_function Required
string
Callback function to subscribe to the transaction status updates.

Code example

Handpoint.update(CallbackFunction(stat){...});

Returns

ParameterNotes
Update ResponseA Financial Response object